package javaCode.chapter10.homework;

/**
 * @author 徐州城
 * @version 1.0
 */
public class Homework04 {
    public static void main(String[] args) {
        Cellphone cellphone = new Cellphone();
        //解读
        //1、匿名内部类
        /*
            new Calc() {
                @Override
                public double work(double n1, double n2) {
                    return n1 + n2;
                }
            },同时也是一个对象
            它的编译类型是Calc，它的运行类型是匿名内部类，运行testWork 会经行动态绑定机制
         */
        cellphone.testWork(new Calc() {
            @Override
            public double work(double n1, double n2) {
                return n1 + n2;
            }
        },10,20);
    }
}

/*
1、计算器接口具有work方法，功能是运算，有一个手机类Cellphone，定义方法testWork测试计算功能，调用计算接口的work方法
2、要求调用Cellphone对象的 testWork方法，使用上 匿名内部类
 */

interface Calc{
    double work(double n1,double n2);
}

class Cellphone{

    public void testWork(Calc calc,double n1,double n2){
        double result = calc.work(n1,n2);
        System.out.println("运算后的结果是=" + result);
    }
}


